feat: add Compressor, MFAdvisor, and refactored AcqOptimizer modules#113
Merged
Elubrazione merged 54 commits intoPKU-DAIR:masterfrom Mar 20, 2026
Merged
feat: add Compressor, MFAdvisor, and refactored AcqOptimizer modules#113Elubrazione merged 54 commits intoPKU-DAIR:masterfrom
Elubrazione merged 54 commits intoPKU-DAIR:masterfrom
Conversation
Introduce scheduler infrastructure for resource allocation and bracket management. Support Fixed, BOHB, MFES, and Flatten scheduling strategies.
Add scheduler support with factory pattern and fidelity-aware evaluation. Enable BOHB/MFES successive halving strategies in generic optimizer.
…trategy interface - Implement sampling strategies: * StandardSamplingStrategy for single-space sampling * MixedRangeSamplingStrategy for adaptive compressed/original space sampling
…work (base/expert/shap) Co-authored-by: Lingching <Elubrazione@users.noreply.github.com>
- Refactor range compression into modular step classes: * BaseRangeCompressionStep: Base class for range compression steps * BoundaryRangeStep: Simple boundary-based range compression with mixed sampling support * SHAPBoundaryRangeStep: SHAP-weighted boundary range compression * ExpertRangeStep: Expert-specified range compression Co-authored-by: Lingching <Elubrazione@users.noreply.github.com>
- Add source_similarities support to dimension and range compression steps: * SHAPDimensionStep: Weight SHAP importances by task similarity * SHAPBoundaryRangeStep: Use similarity-weighted SHAP values, focus on beneficial samples (SHAP < 0) * TunefulDimensionStep: Pass source_similarities to parent class - Refactor data extraction utilities - Improve SHAP range compression: * Only use beneficial samples (SHAP < 0) for range computation * Combine SHAP weights with similarity weights for better parameter selection
- Add core compression framework: * CompressionStep base class for extensible compression operations * CompressionPipeline for orchestrating multi-step compression workflows * OptimizerProgress for tracking optimization state and adaptive updates - Support adaptive compression updates based on optimizer progress - Enable point projection/unprojection through compression pipeline
- KDEBoundaryRangeStep: KDE-based range compression with similarity weighting - QuantizationRangeStep: Quantization-based compression with adaptive updates
- Add SpearmanDimensionStep for correlation-based dimension selection - Add KPCAProjectionStep for kernel PCA-based projection - Add bidirectional caching to REMBO/HesBO projection steps
…ons between spaces - filling strategy initialization - unproject method for quantization
- Refactor Compressor/__init__.py to use new pipeline architecture - Add new Compressor base class in Compressor/core/compressor.py - Enhance CompressionPipeline info * Add detailed step-by-step compression statistics * Display dimension ratio and effective compression ratio separately * Show comprehensive pipeline summary with original/sample/surrogate dimensions - Improve projection step visualization support
Add visualization functions for compression pipeline analysis including: - Compression details and range compression visualization - Dimension reduction tracking across steps - Parameter importance visualization and heatmaps - Pipeline flow diagrams - Compression metadata export
- Parameter filtering -> DimensionSelectionStep - Value clipping -> RangeCompressionStep - Parameter filling -> all steps - Add clipping.py utilities Each step now fully owns its transformation logic. Fixes out-of-bounds crash when ranges compress.
…mation - All compressor types now use convert_config_to_surrogate_space() - REMBO/HesBO support pseudoinverse approximation for cache misses
Implement progressive compression mode for PeriodicDimensionStep to enable gradual dimension reduction instead of always restarting from the original space
- Add UpdateStrategy framework with periodic/stagnation/improvement strategies - Add ImportanceCalculator with SHAP and correlation-based implementations
- Refactor SHAPDimensionStep to use SHAPImportanceCalculator - Replace SpearmanDimensionStep with generic CorrelationDimensionStep - Remove redundant validation checks from calculators - Update exports to reflect new architecture
- Change source_similarities from List[Tuple] to Dict[int, float] across all steps - Add source_similarities param to all compress() methods for complete data flow
- Add AdaptiveDimensionStep * Integrates with UpdateStrategy framework for dynamic dimension adjustment * Handles dimension increase/decrease based on optimization progress - Enhance UpdateStrategy framework * Add compute_new_topk() method to all strategies * Implement dimension adjustment logic for each strategy type - Improve CompressionPipeline * Detect dimension increase scenarios and use original_space when needed * Simplify project_point/unproject_point to handle dict directly * Better handling of progressive vs re-compression scenarios
- Add compression info saving to JSON files with history tracking - Implement get_step_info() across all compression steps - Add source_similarities parameter support throughout pipeline
- Track unprojected_space in CompressionPipeline - Add get_unprojected_space() to Compressor - Fix BO advisor to use correct target space for unprojection
- add a 4-panel compression summary dashboard plus a smart dispatcher - add tracking for visualization
- unproject to sample space when no transformative step - return instead of - add new interface to unproject batch configs
- parameter exclusion (allowing experts to exclude certain parameters) - add expert_params parameter to all dimension step constructors (Adaptive, SHAP, Correlation, Expert) - refactor _select_parameters() to return all sorted parameters instead of just topk - base class now handles topk selection and expert_params merging - this allows expert params to be prioritized while method selection supplements - simplify ExpertDimensionStep to delegate expert param handling to base class
…ce_ratio-aware observation updates
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.